from flask import Flask,url_for,redirect,request,render_template,make_response
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@localhost:3306/py02db?charset=utf8'
db = SQLAlchemy(app)
class stus(db.Model):
    s_id = db.Column('stus',db.Integer,primary_key=True)
    s_name = db.Column(db.String(20))
    s_sex = db.Column(db.String(20))
    s_age = db.Column(db.Integer)
    s_phone = db.Column(db.String(20))

    def __init__(self,s_name,s_sex,s_age,s_phone):
        self.s_name=s_name
        self.s_sex=s_sex
        self.s_age=s_age
        self.s_phone=s_phone

@app.route('/')
def hello_world():
    print(url_for('index',name='10月9日'))
    # return redirect('http://www.baidu.com/index.html')
    return redirect(url_for(endpoint='index',name='这是一个测试10月9日'))


#url_for() 用于构建URL的函数  也称之为URL反转（将一个字符串转换成一个URL）
#url_for()1.将字符串 转换成url 2.将静态文件进行加载

#redirect()功能就是跳转到指定的url 一般情况下 和 url_for 一起使用
#redirect()重定向函数，自动跳转另外一个URL
#重定向一般用于共用的路由跳转  例如：404、非正常的情况例如 数据信息不匹配





@app.route('/index/<name>')#声明一个路由
# <name> 动态路由
#声明一个函数，作为和最近一个路由进行匹配，
# 该函数称之为 视图函数，
# 视图函数的作用就是将对应的数据请求做对应的视图数据处理（响应）
def index(name):
    if name == 'reg':
        return render_template('register.html',title='')
    return u'这是首页%s' %name

# TODO:用户注册
@app.route('/register',methods=['POST','GET'])
def register():
    if request.method == 'POST':
        u_name = request.form['uname']
        u_pass = request.form['upassword']
        #正则处理 内容格式的匹配
        res = True
        if u_name == 'admin':
            # return redirect(url_for('home'))
            resp = make_response(render_template('home.html',title='home'))
            # resp.set_cookie('NAME',u_name)
            # resp.set_cookie('PW',u_pass)
            return resp
        else:
            return redirect(url_for('index',name='reg'))
    else:
        pass

# #TODO:获取Cookie
# @app.route('/getcookie')
# def getcookie():
#     print(request.cookies)
#     uname = request.cookies.get('NAME')
#     upass = request.cookies.get('PW')
#     return '<h1>%s,%s</h1>' %(uname,upass)



    #注册成功之后 跳转到 首页
    #TODO:首页
@app.route('/home/')
def home():
    # li1=goods.query.all()
    # for i in li1:
    #     print(i.g_id,i.g_name,i.g_price)
    # print(stus.query.all())
    # 增加信息
    ob = stus('蓝湛','男',26,'12345678901')
    db.session.add(ob)
    db.session.commit()

    all_datas = stus.query.all()
    for item in all_datas:
        print(item.s_id,item.s_name,item.s_sex,item.s_age,item.s_phone)


    # 删除一条数据
    # obj = goods.query.filter_by(g_id='6').first()
    # if obj:
    #     db.session.delete(obj)
    #     db.session.commit()
    #
    all_datas = stus.query.all()
    for item in all_datas:
        print(item.g_id, item.g_name, item.g_price)

    return render_template('home.html',title='home')



if __name__ == '__main__':
    app.run()
